package entities;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name="SOLICITUD")
public class Solicitud {
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private int id;
	@OneToMany(cascade=CascadeType.ALL)
	@JoinColumn(name="ID_SOLICITUD")
	private List<ItemSolicitud> items;
	@OneToMany(cascade=CascadeType.ALL)
	@JoinColumn(name="ID_ESTADO_SOLICITUD")
	private List<EstadoSolicitud> estados;
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name="ID_MODULO")
	private Modulo deposito;
	
	
	public Solicitud(){
		
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public List<ItemSolicitud> getItems() {
		return items;
	}
	public void setItems(List<ItemSolicitud> items) {
		this.items = items;
	}
	public List<EstadoSolicitud> getEstados() {
		return estados;
	}
	public void setEstados(List<EstadoSolicitud> estados) {
		this.estados = estados;
	}
	public Modulo getDeposito() {
		return deposito;
	}
	public void setDeposito(Modulo deposito) {
		this.deposito = deposito;
	}
	public void inicializar() {
		// TODO Auto-generated method stub
		this.items = new  ArrayList<ItemSolicitud>(); 
		this.estados = new ArrayList<EstadoSolicitud>();
		
		EstadoSolicitud estado = new EstadoSolicitud();
		estado.setFecha(Calendar.getInstance().getTime());
		estado.setNombre(EstadoSolicitudValor.NUEVA.toString());
		this.estados.add(estado);
	}
	public void addItem(ItemSolicitud item) {
		// TODO Auto-generated method stub
		if(this.items == null){
			this.items = new ArrayList<ItemSolicitud>();
		}
		this.items.add(item);
	}
	public void addEstado(EstadoSolicitud estado){
		if(this.estados == null){
			this.estados = new ArrayList<EstadoSolicitud>();
		}
		this.estados.add(estado);
	}

	
}
